///@file PolynomialChaos.h
///@brief Declaration of methods for polynomial chaos studies
///@author Arnaud Duval
///@version 0.0
///@date 2010/04/14

#ifndef POLYNOMIALCHAOS_H
#define POLYNOMIALCHAOS_H

#include "../../mathobject/include/Vector.h"
#include "../../mathobject/include/Matrix.h"
#include "PCbasis.h"

///@brief Preprocessor for polynomial chaos study
void ChaosPrepro(char*);
///@brief Solver for polynomial chaos study
void ChaosSolver(char*);
///@brief Compute Polynomial Chaos coefficients, giving a PC basis and a design of experiment
Vector ComputePCCoefficients(Matrix, Vector, PCbasis);
///@brief Compute total sensibilitis from PC expansion
Vector ComputeACPSensibility(PCbasis, Vector);
///@brief Compute weights for adaptatif sparse anisotropic polynomial chaos
Vector ComputeACPWeights(Vector);
///@brief Compute determination coefficients of a PC expansion
double DeterminationCoefficient(PCbasis, Vector, Matrix, Vector);


#endif
